<?php
/**
 * Exceptioner
 *
 * 예외처리 발생에 대한 템플릿 객체 관리
 *
 * @package boot
 * @author  Platform Team
 */

class Exceptioner
{
    private static $aLoaded = false;

    /**
     * 예외처리 클래스 실행
     *
     * @param string $sType
     * @param string $sMsg
     * @param string $sCode
     * @param array $aParam
     */
    public static function run($sType, $sMsg=null, $sCode=0, $aParam=array())
    {
        if (!isset(self::$aLoaded[$sType])) return;

        $sClass = self::$aLoaded[$sType];

        if (!class_exists($sClass)) return;

        $Exception = new $sClass($sType, $sMsg, $sCode, $aParam);
        $Exception->display();
    }

    /**
     * 예외처리 클래스 등록
     *
     * @param string $sType
     * @param array $aParam
     * @return booelan
     */
    public static function regist($sType, $sClass)
    {
        if (empty($sType) || empty($sClass)) return false;

        self::$aLoaded[$sType] = $sClass;

        return true;
    }
}
